package exercise;

import test.student.Student;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Exercise003 {
    public static void main(String[] args) {
//    String 的理解
//        //给你一个字符串 s ，将该字符串中的大写字母转换成相同的小写字母，返回新的字符串。
//        String s = "ABC";
//        String ret = "";
//        char[] chars = s.toCharArray();
//        for(int i = 0;i < s.length();i++){
//            chars[i] += 32;
//            ret += chars[i];
//        }
//        System.out.println(ret);

//        //统计字符串中的单词个数，这里的单词指的是连续的不是空格的字符
//        //请注意，你可以假定字符串里不包括任何不可打印的字符。
//        Scanner scanner = new Scanner(System.in);
//        String str = scanner.nextLine();
//        int count = 0;
//        str += " ";
//        for(int i = 0;i < str.length();i++){
//            char ch1 = str.charAt(i);
//            char ch2 = str.charAt(i+1);
//            if(ch1 != ' ' && ch2 == ' '){
//                count++;
//            }
//        }
//        System.out.println(count);


//    类和对象的认识
//        Scanner scanner = new Scanner(System.in);
//        while (scanner.hasNextInt()) {
//            int x = scanner.nextInt();
//            int y = scanner.nextInt();
//            Data data = new Data(x, y);
//            System.out.println(data.getX() + data.getY());
//        }


//        //String 的理解

//        //字符串构造
//        //常量串构造
//        String s1 = "ysml";
//        System.out.println(s1);
//
//        //创建对象
//        String s2 = new String("ysml");
//        System.out.println(s2);
//
//        //用字符数组构造
//        char[] array ={'y','s','m','l'};
//        String s3 = new String(array);
//        System.out.println(s3);

        //字符串比较
//        //①“==”比较
//        String s1 = new String("hello");
//        String s2 = new String("hello");
//        System.out.println(s1 == s2); //false 引用不同对象
//
//        String s3 = "ysml";
//        String s4 = "ysml";
//        System.out.println(s3 == s4); //true 引用相同对象

//        //②boolean equals (Object anObject)方法
//        //按照字典序比较
//        String s1 = new String("hello");
//        String s2 = new String("hello");
//
//        System.out.println(s1.equals(s2)); //true

//        //③int compareTo(String s)方法
//        //按照字典序比较
//        String s1 = new String("hello");
//        String s2 = new String("hello");
//        String s3 = new String("hell");
//        String s4 = new String("helln");
//
//        System.out.println(s1.compareTo(s2)); //0
//        System.out.println(s2.compareTo(s3)); //1
//        System.out.println(s2.compareTo(s4)); //1

//        //④int compareToIgnoreCase(String s)方法
//        //按照字典序比较,忽略大小写
//        String s1 = new String("hello");
//        String s2 = new String("Hello");
//
//        System.out.println(s1.compareToIgnoreCase(s2)); //0

//        //字符（串）查找
//        String s = "ahhhhaaaahhhhaaaa";
//
//        System.out.println(s.charAt(0)); //a
//
//        System.out.println(s.indexOf('h')); //1
//        System.out.println(s.indexOf('h',1)); //1
//        System.out.println(s.indexOf("hhhh")); //1
//        System.out.println(s.indexOf("hhhh",2)); //9
//
//        System.out.println(s.lastIndexOf('h')); //12
//        System.out.println(s.lastIndexOf('h',11)); //11
//        System.out.println(s.lastIndexOf("hhhh")); //9
//        System.out.println(s.lastIndexOf("hhhh",8)); //1

        //转化
//        //字符串和数字等
//        //转字符串
//        String s1 = String.valueOf(11);
//        String s2 = String.valueOf(11.34);
//        String s3 = String.valueOf(true);
//        String s4 = String.valueOf(new Student("a",100));
//        //打印输出
//        System.out.println(s1+1);
//        System.out.println(s2+1);
//        System.out.println(s3);
//        System.out.println(s4);
//        //转数字
//        int d1 = Integer.parseInt("11");
//        double d2 = Double.parseDouble("11.34");
//        //打印输出
//        System.out.println(d1+1);
//        System.out.println(d2+1);

//        //大小写
//        String s = "nihao";
//        String s1 = s.toUpperCase();
//        String s2 = s1.toLowerCase();
//        //输出
//        System.out.println(s1);
//        System.out.println(s2);

//        //字符串转数组
//        String s1 = "hello";
//        //字符串转数组
//        char[] arr = s1.toCharArray();
//        for(int i = 0;i < arr.length;i++){
//            char c = arr[i];
//            System.out.println(c);
//        }
//        System.out.println(" ");
//        //数组转字符串
//        String s2 = new String(arr);
//        System.out.println(s2);

//        //格式化
//        String s = String.format("%d-%d-%d",2025,2,6);
//        System.out.println(s);

//        //字符串替换
//        String s = "hahaha";
//        System.out.println(s.replaceAll("a","e"));
//        System.out.println(s.replaceFirst("a","e"));

//        //字符串拆分
//        String str = "ni hao a";
//        //全拆
//        String[] result1 = str.split(" ");
//        for(String s:result1){
//            System.out.println(s);
//        }
//        //拆为指定组数
//        String[] result2 = str.split(" ",2);
//        for(String s:result2){
//            System.out.println(s);
//        }
//        //拆分地址
//        String str = "192.168.1.1";
//        String[] result = str.split("\\.");
//        for(String s:result){
//            System.out.println(s);
//        }
//        //多次拆分
//        String str = "ni&hao,wo&shi:yun&shen&mi&lu";
//        String[] result = str.split("&|,|:");
//        for(String s:result){
//            System.out.println(s);
//        }

//        //字符串截取
//        String str = "helloworld";
//
//        System.out.println(str.substring(5)); //world
//        System.out.println(str.substring(0,5)); //hello

//        //trim()方法
//        String s = "  ni hao  ";
//
//        System.out.println("["+ s + "]");
//        System.out.println("[" + s.trim() + "]");

//        StringBuilder
//        StringBuilder strB1 = new StringBuilder("hello");
//        StringBuilder strB2 = new StringBuilder("hello");
//
//        //比较
//        System.out.println(strB1 == strB2);
//        //追加
//        System.out.println(strB1.append(" world")); //hello world
//        //获取指定位置字符
//        System.out.println(strB1.charAt(0)); //h
//        //获取字符串长度
//        System.out.println(strB1.length()); //5
//        //获取字符串保存空间总大小
//        System.out.println(strB1.capacity());
//
//        //设置指定位置字符
//        strB1.setCharAt(0,'H');
//        System.out.println(strB1); //Hello
//        //获取指定字符串第一次出现位置
//        System.out.println(strB1.indexOf("H")); //0
//        //删除指定位置字符
//        strB1.deleteCharAt(0);
//        System.out.println(strB1); //ello
//        strB1.delete(0,3);
//        System.out.println(strB1); //o
//
//        //获取指定范围内字符以String类型返回
//        System.out.println(strB2.substring(0,1)); //h
//        //反转字符串
//        System.out.println(strB2.reverse()); //olleh
//        //转String类型
//        System.out.println(strB2.toString()); //hello


//        //异常
//        //事前防御
//        boolean ret = false;
//        ret = login();
//        if(!ret){
//            //处理登录异常
//            return;
//        }
//        //事后认错
//        try{
//            login();
//            //...
//        }catch(/*登录异常*/){
//            //处理登录异常
//        }
//        //...
//        //异常的抛出
//        throw new XXXException("异常产生原因");
//        //异常的捕获
//        //throws
//        public void fun（/*参数列表*/）throws XXXException...{
//            if(exp){
//                throw new XXXException("异常产生原因");
//            }
//            //...
//        }
//        //try-catch
//        try{
//            //可能出现异常的代码
//        }catch(Exception){
//            //处理异常
//        }...
//        //finally
//        try{
//            //可能出现异常的代码
//        }catch(Exception){
//            //处理异常
//        }finally{
//            //此处的语句无论是否发生异常，都会被执行到
//        }
//        //如果没有抛出异常，或者异常被捕获处理了，这里的代码也会执行
//        //自定义异常类
//        Class XXXException extends Exception/*RunTimeException*/{
//            public XXXException(String /*出现异常的原因*/){
//                //...
//            }
//        }


    }

    //类和对象的认识
    class Data {
        private int x;
        private int y;
        public Data(int x, int y) {
            this.x = x;
            this.y = y;
        }
        public int getX() {
            return x;
        }
        public int getY() {
            return y;
        }
    }
//    public class HasStatic {//1
//        private static int x = 100;// 2
//
//        public static void main(String args[]) {// 3
//            HasStatic hsl = new HasStatic();// 4
//            hsl.x++;// 5
//            HasStatic hs2 = new HasStatic();// 6
//            hs2.x++;// 7
//            hsl = new HasStatic();// 8
//            hsl.x++;// 9
//            HasStatic.x--;// 10
//            System.out.println(" x=" + x);// 11
//        }
//    }
}

